{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "469beceb",
   "metadata": {},
   "source": [
    "### 1、实战FashionMNIST分类，使用AI完成数据预处理，模型搭建，评估，训练，损失与准确率曲线绘制"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a75c5900",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 26.4M/26.4M [12:20<00:00, 35.7kB/s]\n",
      "100%|██████████| 29.5k/29.5k [00:01<00:00, 22.0kB/s]\n",
      "100%|██████████| 4.42M/4.42M [02:34<00:00, 28.6kB/s]\n",
      "100%|██████████| 5.15k/5.15k [00:00<?, ?B/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/10] Train Loss: 0.4941 Train Acc: 0.8196 Test Loss: 0.4177 Test Acc: 0.8487\n",
      "Epoch [2/10] Train Loss: 0.3648 Train Acc: 0.8659 Test Loss: 0.3779 Test Acc: 0.8618\n",
      "Epoch [3/10] Train Loss: 0.3274 Train Acc: 0.8776 Test Loss: 0.3566 Test Acc: 0.8717\n",
      "Epoch [4/10] Train Loss: 0.3022 Train Acc: 0.8880 Test Loss: 0.3474 Test Acc: 0.8767\n",
      "Epoch [5/10] Train Loss: 0.2855 Train Acc: 0.8943 Test Loss: 0.3479 Test Acc: 0.8772\n",
      "Epoch [6/10] Train Loss: 0.2704 Train Acc: 0.8994 Test Loss: 0.3528 Test Acc: 0.8789\n",
      "Epoch [7/10] Train Loss: 0.2528 Train Acc: 0.9064 Test Loss: 0.3526 Test Acc: 0.8778\n",
      "Epoch [8/10] Train Loss: 0.2431 Train Acc: 0.9087 Test Loss: 0.3674 Test Acc: 0.8748\n",
      "Epoch [9/10] Train Loss: 0.2308 Train Acc: 0.9120 Test Loss: 0.3706 Test Acc: 0.8804\n",
      "Epoch [10/10] Train Loss: 0.2178 Train Acc: 0.9179 Test Loss: 0.3377 Test Acc: 0.8898\n"
     ]
    },
    {
     "data": {
      "image/png": "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Q4bkent751pZWamliWUJ4Hnz5uVmZ2fnHRcbG5s7YMAANVY55sknn8w9cuRIocsvy1ju5M0331SPq1WrVpHHyFLP8vOR12Rra5tbs2bN3JEjR6qlp4mIiEi/evfurf4+p6SkFHmM/N2WuYXMV8SVK1dyJ0yYkOvj45NrbW2d6+vrq+YNuvtFamqqmidUr15dPbZKlSq5jz76aO6ZM2dKdU5y7Nix3JCQEDUPc3d3zx03blzuwYMHbzuHkHP369dPzcfkNdetWzf37bffvu2c6enpajwyd7l+/XqJfp6RkZG5L774Ym6dOnXUc8hra968uZr3JSQk5B0nc7NXX31VjVmOkbnS6dOnc6tVq6Ze763z0T179hT5nOvXr1fHmJmZ5c1PbyU/9+HDh6vfg/w+5HfXq1ev3GXLlpXo9RFVdGbyn+IGsIiIiIiIiIhKIisrC97e3qpP1KxZs/Q9HCIyIOwpRURERERERGVGVkKWXkv5m6cTEQlmShEREREREVGpkxUDDx06pPpISW8n6QVFRJQfM6WIiIiIiIio1MkCLU8//bRasU4atRMR3YqZUkREREREREREVO6YKUVEREREREREROWOQSkiIiIiIiIiIip3luX/lIYvJycHkZGRcHR0hJmZmb6HQ0RERHoiXQ6SkpLUUubm5ryWdzecQxEREVFJ5lAMShVCJlN+fn76HgYREREZiIsXL8LX11ffwzB4nEMRERFRSeZQDEoVQq7u6X54Tk5O+h4OERER6UliYqIKsujmBnRnnEMRERFRSeZQDEoVQpduLpMpTqiIiIiIpWjFwzkUERERlWQOxeYIRERERERERERU7hiUIiIiIiIiIiKicsegFBERERERERERlTu995SaPn06PvvsM0RFRaFx48b45ptv0LJly0KPnTt3LkaNGlVgn42NDdLS0gosO/jOO+/gxx9/RHx8PNq1a4eZM2eidu3aZf5aiIio4sjOzkZmZqa+h0GlwNra+o5LFRuqksyh5P/VKVOmYN68ebh06RLq1q2LTz75BA899FDeMXL/8uXLcfz4cdjZ2aFt27bqGDm2NPG9Y3ysrKxgYWGh72EQEZEJ0mtQasmSJZg0aRK+++47tGrVCtOmTUP37t1x4sQJeHp6FvoYaZop9xfVNOvTTz/F119/rSZd1atXx9tvv63OeezYMdja2pb5ayIiItMm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",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 1. 数据预处理\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),\n",
    "    transforms.Normalize((0.5,), (0.5,))\n",
    "])\n",
    "\n",
    "train_dataset = torchvision.datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = torchvision.datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)\n",
    "\n",
    "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)\n",
    "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1000, shuffle=False)\n",
    "\n",
    "# 2. 模型搭建\n",
    "class FashionNet(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(FashionNet, self).__init__()\n",
    "        self.model = nn.Sequential(\n",
    "            nn.Flatten(),\n",
    "            nn.Linear(28*28, 256),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(256, 128),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(128, 10)\n",
    "        )\n",
    "    def forward(self, x):\n",
    "        return self.model(x)\n",
    "\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model = FashionNet().to(device)\n",
    "\n",
    "# 3. 损失函数与优化器\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 4. 训练与评估\n",
    "num_epochs = 10\n",
    "train_losses = []\n",
    "test_losses = []\n",
    "train_accuracies = []\n",
    "test_accuracies = []\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    for images, labels in train_loader:\n",
    "        images, labels = images.to(device), labels.to(device)\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(images)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        running_loss += loss.item() * images.size(0)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        total += labels.size(0)\n",
    "        correct += (predicted == labels).sum().item()\n",
    "    epoch_loss = running_loss / len(train_loader.dataset)\n",
    "    epoch_acc = correct / total\n",
    "    train_losses.append(epoch_loss)\n",
    "    train_accuracies.append(epoch_acc)\n",
    "\n",
    "    # 测试集评估\n",
    "    model.eval()\n",
    "    test_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    with torch.no_grad():\n",
    "        for images, labels in test_loader:\n",
    "            images, labels = images.to(device), labels.to(device)\n",
    "            outputs = model(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            test_loss += loss.item() * images.size(0)\n",
    "            _, predicted = torch.max(outputs, 1)\n",
    "            total += labels.size(0)\n",
    "            correct += (predicted == labels).sum().item()\n",
    "    test_loss = test_loss / len(test_loader.dataset)\n",
    "    test_acc = correct / total\n",
    "    test_losses.append(test_loss)\n",
    "    test_accuracies.append(test_acc)\n",
    "\n",
    "    print(f\"Epoch [{epoch+1}/{num_epochs}] \"\n",
    "          f\"Train Loss: {epoch_loss:.4f} Train Acc: {epoch_acc:.4f} \"\n",
    "          f\"Test Loss: {test_loss:.4f} Test Acc: {test_acc:.4f}\")\n",
    "\n",
    "# 5. 绘制损失与准确率曲线\n",
    "plt.figure(figsize=(12,5))\n",
    "plt.subplot(1,2,1)\n",
    "plt.plot(train_losses, label='Train Loss')\n",
    "plt.plot(test_losses, label='Test Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Loss Curve')\n",
    "plt.legend()\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.plot(train_accuracies, label='Train Acc')\n",
    "plt.plot(test_accuracies, label='Test Acc')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.title('Accuracy Curve')\n",
    "plt.legend()\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef2a8162",
   "metadata": {},
   "source": [
    "### 2、增加标准化，早停，模型保存等功能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c30cba0d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 9.91M/9.91M [08:46<00:00, 18.8kB/s]\n",
      "100%|██████████| 28.9k/28.9k [00:00<00:00, 58.6kB/s]\n",
      "100%|██████████| 1.65M/1.65M [01:22<00:00, 20.1kB/s]\n",
      "100%|██████████| 4.54k/4.54k [00:00<00:00, 10.2kB/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/30] Train Loss: 0.3886 Train Acc: 0.8880 Test Loss: 0.2262 Test Acc: 0.9311\n",
      "Validation loss decreased (inf --> 0.226242).  Saving model ...\n",
      "Epoch [2/30] Train Loss: 0.1984 Train Acc: 0.9410 Test Loss: 0.1524 Test Acc: 0.9540\n",
      "Validation loss decreased (0.226242 --> 0.152354).  Saving model ...\n",
      "Epoch [3/30] Train Loss: 0.1446 Train Acc: 0.9563 Test Loss: 0.1419 Test Acc: 0.9557\n",
      "Validation loss decreased (0.152354 --> 0.141912).  Saving model ...\n",
      "Epoch [4/30] Train Loss: 0.1186 Train Acc: 0.9643 Test Loss: 0.1044 Test Acc: 0.9682\n",
      "Validation loss decreased (0.141912 --> 0.104385).  Saving model ...\n",
      "Epoch [5/30] Train Loss: 0.1012 Train Acc: 0.9686 Test Loss: 0.1185 Test Acc: 0.9638\n",
      "EarlyStopping counter: 1 out of 5\n",
      "Epoch [6/30] Train Loss: 0.0880 Train Acc: 0.9728 Test Loss: 0.1020 Test Acc: 0.9685\n",
      "Validation loss decreased (0.104385 --> 0.102043).  Saving model ...\n",
      "Epoch [7/30] Train Loss: 0.0802 Train Acc: 0.9751 Test Loss: 0.0985 Test Acc: 0.9701\n",
      "Validation loss decreased (0.102043 --> 0.098466).  Saving model ...\n",
      "Epoch [8/30] Train Loss: 0.0707 Train Acc: 0.9778 Test Loss: 0.0903 Test Acc: 0.9731\n",
      "Validation loss decreased (0.098466 --> 0.090270).  Saving model ...\n",
      "Epoch [9/30] Train Loss: 0.0648 Train Acc: 0.9793 Test Loss: 0.1033 Test Acc: 0.9690\n",
      "EarlyStopping counter: 1 out of 5\n",
      "Epoch [10/30] Train Loss: 0.0613 Train Acc: 0.9797 Test Loss: 0.1067 Test Acc: 0.9684\n",
      "EarlyStopping counter: 2 out of 5\n",
      "Epoch [11/30] Train Loss: 0.0556 Train Acc: 0.9820 Test Loss: 0.1012 Test Acc: 0.9711\n",
      "EarlyStopping counter: 3 out of 5\n",
      "Epoch [12/30] Train Loss: 0.0528 Train Acc: 0.9825 Test Loss: 0.0894 Test Acc: 0.9730\n",
      "Validation loss decreased (0.090270 --> 0.089372).  Saving model ...\n",
      "Epoch [13/30] Train Loss: 0.0470 Train Acc: 0.9849 Test Loss: 0.0900 Test Acc: 0.9739\n",
      "EarlyStopping counter: 1 out of 5\n",
      "Epoch [14/30] Train Loss: 0.0435 Train Acc: 0.9861 Test Loss: 0.0962 Test Acc: 0.9737\n",
      "EarlyStopping counter: 2 out of 5\n",
      "Epoch [15/30] Train Loss: 0.0420 Train Acc: 0.9864 Test Loss: 0.0880 Test Acc: 0.9751\n",
      "Validation loss decreased (0.089372 --> 0.088029).  Saving model ...\n",
      "Epoch [16/30] Train Loss: 0.0388 Train Acc: 0.9870 Test Loss: 0.0956 Test Acc: 0.9735\n",
      "EarlyStopping counter: 1 out of 5\n",
      "Epoch [17/30] Train Loss: 0.0370 Train Acc: 0.9872 Test Loss: 0.0971 Test Acc: 0.9737\n",
      "EarlyStopping counter: 2 out of 5\n",
      "Epoch [18/30] Train Loss: 0.0342 Train Acc: 0.9885 Test Loss: 0.1022 Test Acc: 0.9716\n",
      "EarlyStopping counter: 3 out of 5\n",
      "Epoch [19/30] Train Loss: 0.0329 Train Acc: 0.9886 Test Loss: 0.0908 Test Acc: 0.9755\n",
      "EarlyStopping counter: 4 out of 5\n",
      "Epoch [20/30] Train Loss: 0.0311 Train Acc: 0.9895 Test Loss: 0.0978 Test Acc: 0.9746\n",
      "EarlyStopping counter: 5 out of 5\n",
      "Early stopping!\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "from torchvision import datasets, transforms\n",
    "import os\n",
    "\n",
    "# 1. 数据标准化\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),\n",
    "    transforms.Normalize((0.5,), (0.5,))  # 以灰度图为例，若为RGB请改为((0.5,0.5,0.5), (0.5,0.5,0.5))\n",
    "])\n",
    "\n",
    "train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)\n",
    "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)\n",
    "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1000, shuffle=False)\n",
    "\n",
    "# 2. 定义模型\n",
    "class SimpleNet(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(SimpleNet, self).__init__()\n",
    "        self.fc1 = nn.Linear(28*28, 128)\n",
    "        self.relu = nn.ReLU()\n",
    "        self.fc2 = nn.Linear(128, 10)\n",
    "    def forward(self, x):\n",
    "        x = x.view(-1, 28*28)\n",
    "        x = self.fc1(x)\n",
    "        x = self.relu(x)\n",
    "        x = self.fc2(x)\n",
    "        return x\n",
    "\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model = SimpleNet().to(device)\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
    "\n",
    "# 3. 早停与模型保存\n",
    "class EarlyStopping:\n",
    "    def __init__(self, patience=5, verbose=False, delta=0, path='best_model.pth'):\n",
    "        self.patience = patience\n",
    "        self.verbose = verbose\n",
    "        self.counter = 0\n",
    "        self.best_score = None\n",
    "        self.early_stop = False\n",
    "        self.val_loss_min = float('inf')\n",
    "        self.delta = delta\n",
    "        self.path = path\n",
    "\n",
    "    def __call__(self, val_loss, model):\n",
    "        score = -val_loss\n",
    "        if self.best_score is None:\n",
    "            self.best_score = score\n",
    "            self.save_checkpoint(val_loss, model)\n",
    "        elif score < self.best_score + self.delta:\n",
    "            self.counter += 1\n",
    "            if self.verbose:\n",
    "                print(f'EarlyStopping counter: {self.counter} out of {self.patience}')\n",
    "            if self.counter >= self.patience:\n",
    "                self.early_stop = True\n",
    "        else:\n",
    "            self.best_score = score\n",
    "            self.save_checkpoint(val_loss, model)\n",
    "            self.counter = 0\n",
    "\n",
    "    def save_checkpoint(self, val_loss, model):\n",
    "        '''保存验证损失下降的模型'''\n",
    "        if self.verbose:\n",
    "            print(f'Validation loss decreased ({self.val_loss_min:.6f} --> {val_loss:.6f}).  Saving model ...')\n",
    "        torch.save(model.state_dict(), self.path)\n",
    "        self.val_loss_min = val_loss\n",
    "\n",
    "# 4. 训练与验证\n",
    "num_epochs = 30\n",
    "train_losses, test_losses = [], []\n",
    "train_accuracies, test_accuracies = [], []\n",
    "early_stopping = EarlyStopping(patience=5, verbose=True, path='best_model.pth')\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    for images, labels in train_loader:\n",
    "        images, labels = images.to(device), labels.to(device)\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(images)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        running_loss += loss.item() * images.size(0)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        total += labels.size(0)\n",
    "        correct += (predicted == labels).sum().item()\n",
    "    epoch_loss = running_loss / len(train_loader.dataset)\n",
    "    epoch_acc = correct / total\n",
    "    train_losses.append(epoch_loss)\n",
    "    train_accuracies.append(epoch_acc)\n",
    "\n",
    "    # 验证\n",
    "    model.eval()\n",
    "    test_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "    with torch.no_grad():\n",
    "        for images, labels in test_loader:\n",
    "            images, labels = images.to(device), labels.to(device)\n",
    "            outputs = model(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            test_loss += loss.item() * images.size(0)\n",
    "            _, predicted = torch.max(outputs, 1)\n",
    "            total += labels.size(0)\n",
    "            correct += (predicted == labels).sum().item()\n",
    "    test_loss = test_loss / len(test_loader.dataset)\n",
    "    test_acc = correct / total\n",
    "    test_losses.append(test_loss)\n",
    "    test_accuracies.append(test_acc)\n",
    "\n",
    "    print(f\"Epoch [{epoch+1}/{num_epochs}] \"\n",
    "          f\"Train Loss: {epoch_loss:.4f} Train Acc: {epoch_acc:.4f} \"\n",
    "          f\"Test Loss: {test_loss:.4f} Test Acc: {test_acc:.4f}\")\n",
    "\n",
    "    # 早停检查\n",
    "    early_stopping(test_loss, model)\n",
    "    if early_stopping.early_stop:\n",
    "        print(\"Early stopping!\")\n",
    "        break\n",
    "\n",
    "# 加载最佳模型\n",
    "model.load_state_dict(torch.load('best_model.pth'))\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
